/*
 * File:   TestSortWrapper.cpp
 * Author: marco
 *
 * Created on December 8, 2009, 11:36 AM
 */

#include <alg/SortWrapper.h>
#include <gtest/gtest.h>
#include <list>

//TEST(SortWrapperTest, TestOneElement) {
//    std::vector<int> v;
//    v.push_back(1);
//    alg::SortWrapper<std::vector<int> > sortWrapper(v);
//    EXPECT_EQ(1, v[0]);
//}
//
//TEST(SortWrapperTest, TestTwoElementsSorted) {
//    std::vector<int> v;
//    v.push_back(1);
//    v.push_back(2);
//    alg::SortWrapper<std::vector<int> > sortWrapper(v);
//    EXPECT_EQ(1, v[0]);
//    EXPECT_EQ(2, v[1]);
//}
//
//TEST(SortWrapperTest, TestTwoElementsUnsorted) {
//    std::vector<int> v;
//    v.push_back(2);
//    v.push_back(1);
//    alg::SortWrapper<std::vector<int> > sortWrapper(v);
//    EXPECT_EQ(1, sortWrapper[0]);
//    EXPECT_EQ(2, sortWrapper[1]);
//    EXPECT_EQ(2, v[0]);
//    EXPECT_EQ(1, v[1]);
//}
//TEST(SortWrapperTest, TestFourElementsUnsorted1) {
//    std::vector<int> v;
//    v.push_back(1);
//    v.push_back(2);
//    v.push_back(4);
//    v.push_back(3);
//    alg::SortWrapper<std::vector<int> > sortWrapper(v);
//    EXPECT_EQ(1, sortWrapper[0]);
//    EXPECT_EQ(2, sortWrapper[1]);
//    EXPECT_EQ(3, sortWrapper[2]);
//    EXPECT_EQ(4, sortWrapper[3]);
//}
//
//TEST(SortWrapperTest, TestFourElementsUnsorted2) {
//    std::vector<int> v;
//    v.push_back(3);
//    v.push_back(2);
//    v.push_back(4);
//    v.push_back(1);
//    alg::SortWrapper<std::vector<int> > sortWrapper(v);
//    EXPECT_EQ(1, sortWrapper[0]);
//    EXPECT_EQ(2, sortWrapper[1]);
//    EXPECT_EQ(3, sortWrapper[2]);
//    EXPECT_EQ(4, sortWrapper[3]);
//}
//
//TEST(SortWrapperTest, TestComplexObj) {
//    std::vector<std::string> v;
//    v.push_back("b");
//    v.push_back("a");
//    v.push_back("c");
//    v.push_back("bb");
//    alg::SortWrapper<std::vector<std::string> > sortWrapper(v);
//    EXPECT_EQ("a", sortWrapper[0]);
//    EXPECT_EQ("b", sortWrapper[1]);
//    EXPECT_EQ("bb", sortWrapper[2]);
//    EXPECT_EQ("c", sortWrapper[3]);
//}
//
//
//TEST(SortWrapperTest, TestListContainer) {
//    std::list<std::string> v;
//    v.push_back("b");
//    v.push_back("a");
//    v.push_back("c");
//    v.push_back("bb");
//    v.push_back("aaa");
//    alg::SortWrapper<std::list<std::string> > sortWrapper(v);
//    EXPECT_EQ("a", sortWrapper[0]);
//    EXPECT_EQ("aaa", sortWrapper[1]);
//    EXPECT_EQ("b", sortWrapper[2]);
//    EXPECT_EQ("bb", sortWrapper[3]);
//    EXPECT_EQ("c", sortWrapper[4]);
//}
